查看原文
其他

Spring Boot Runner启动器

2017-09-12 javastack Java技术栈


Runner启动器

如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。

CommandLineRunner:启动获取命令行参数。

  1. public interface CommandLineRunner {

  2.    /**

  3.     * Callback used to run the bean.

  4.     * @param args incoming main method arguments

  5.     * @throws Exception on error

  6.     */

  7.    void run(String... args) throws Exception;

  8. }

ApplicationRunner:启动获取应用启动的时候参数。

  1. public interface ApplicationRunner {

  2.    /**

  3.     * Callback used to run the bean.

  4.     * @param args incoming application arguments

  5.     * @throws Exception on error

  6.     */

  7.    void run(ApplicationArguments args) throws Exception;

  8. }

使用方式

  1. import org.springframework.boot.*

  2. import org.springframework.stereotype.*

  3. @Component

  4. public class MyBean implements CommandLineRunner {

  5.    public void run(String... args) {

  6.        // Do something...

  7.    }

  8. }

或者这样

  1. @Bean

  2. public CommandLineRunner init() {

  3.    return (String... strings) -> {

  4.    };

  5. }

启动顺序

如果启动的时候有多个ApplicationRunner和CommandLineRunner,想控制它们的启动顺序,可以实现 org.springframework.core.Ordered接口或者使用 org.springframework.core.annotation.Order注解。


看完是否收获良多?

分享到朋友圈给更多的人吧。





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存